import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { getConnection, Repository } from 'typeorm';
import { createNeimengDataDto } from './dto/neimeng.dto';
import { Neimeng } from './neimeng.entity';

@Injectable()
export class NeimengService {
  constructor(
    @InjectRepository(Neimeng)
    private neimengRepository: Repository<Neimeng>,
  ) {}

  // 获取总局链路信息
  async getNeimengList() {
    const result = await getConnection()
      .createQueryBuilder()
      .select() // 这里添加参数会将每一个返回的字段的名称前面都添加一个job_
      .from(Neimeng, 'neimeng')
      .execute(); // 将获取的数据类型转换为json类型
    return result;
  }

  // 根据链路编号查找链路
  async getNeimengLianluInfoByCode(lianlu_code: string) {
    const result = await getConnection()
      .createQueryBuilder()
      .select()
      .from(Neimeng, 'neimeng')
      .where('neimeng.lianlu_code = :lianlu_code', { lianlu_code })
      .execute();
    return result;
  }

  // 根据链路id查找链路
  async getNeimengLianluInfoById(id: string) {
    const result = await getConnection()
      .createQueryBuilder()
      .select()
      .from(Neimeng, 'neimeng')
      .where('neimeng.id = :id', { id })
      .execute();
    return result;
  }

  // 新建总局链路信息
  async createNeimeng(values: Array<createNeimengDataDto>) {
    const result = await getConnection()
      .createQueryBuilder()
      .insert()
      .into(Neimeng)
      .values(values)
      .execute();
    return result;
  }

  // 根据id删除链路信息
  async delLianlu(id: string) {
    const result = await getConnection()
      .createQueryBuilder()
      .delete()
      .from(Neimeng)
      .where('id = :id', { id })
      .execute();
    return result;
  }

  // 修改链路信息
  async updataLianlu(id: string, data) {
    const result = await getConnection()
      .createQueryBuilder()
      .update(Neimeng)
      .set(data)
      .where('id = :id', { id })
      .execute();
    return result;
  }
}
